﻿using Payroll.Biz.Legacy.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Payroll.Biz.Legacy.DAL
{
    public interface IPayrollDatabase
    {
        void AddEmployee(Employee employee);

        Employee GetEmployee(Guid id);

        void UpdateEmployee(Employee employee);

        void DeleteEmployee(Guid id);

        void AddUnionMember(Guid memberId, Employee employee);

        Employee GetUnionMember(Guid memberId);

        void RemoveUnionMember(Guid memberId);

        IList<Guid> GetAllEmployeeIds();

        IList<Employee> GetAllEmployees();

        void AddTimeCard(TimeCard timeCard);

        void AddSalesReceipt(SalesReceipt salesReceipt);

        void AddServiceCharge(ServiceCharge serviceCharge);

        IList<TimeCard> GetEmployeeTimeCards(Guid employeeId, Range<DateTime> dateRange);

        IList<SalesReceipt> GetEmployeeSalesReceipts(Guid employeeId, Range<DateTime> dateRange);

        IList<ServiceCharge> GetEmployeeServiceCharges(Guid employeeId, Range<DateTime> dateRange);
    }
}
